home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / internet / miami_dodatki / savetime / savetime.miami next >
Text File  |  1997-04-06  |  3KB  |  116 lines

  1. /*
  2.     $VER: savetime.miami 1.1 (04 Apr 1997)
  3.  
  4.     savetime.miami for Miami 1.1 or better
  5.     © Georges Heinesch <geohei@ibm.net>
  6.  
  7.     Saves the ntp updated system time to the battery-powered real-time
  8.     clock. Optionally creates a log file showing the difference between the
  9.     system time and ntp time.
  10.  
  11.     See savetime.readme for details.
  12. */
  13.  
  14.  
  15.  
  16.  
  17.  
  18. /*
  19.     Varibles
  20.  
  21.     'log'      - logging desired or not; 'true' or 'false'
  22.     'logfile'  - if 'log' variable is set to 'true', enter the filename here
  23.                  (including the path from PROGDIR:)
  24.     'secdelta' - fix value for correction purpose, depending on system speed
  25. */
  26.  
  27. log      = 'true'
  28. logfile  = 'Miami_Time.log'
  29. secdelta = 1
  30.  
  31.  
  32.  
  33.  
  34.  
  35. /* body */
  36.  
  37. options results
  38.  
  39. /* if log not desired, save ntp time and exit */
  40.  
  41. if log ~= 'true' then
  42.   do
  43.     address command 'C:SetClock SAVE'
  44.     exit
  45.   end
  46.  
  47. /* get ntp time */
  48.  
  49. address command 'C:Date >T:Date'
  50. if open( date,'T:Date',r ) then
  51.   do
  52.     datentp = readln( date )
  53.     call close( date )
  54.   end
  55. else
  56.   say 'Could not open "T:Date" !!!'
  57.  
  58. timentp = right( datentp,8 )
  59.  
  60. /* get old system time */
  61.  
  62. address command 'C:SetClock LOAD >T:Date'
  63. address command 'C:Date >T:Date'
  64. if open( date,'T:Date',r ) then
  65.   do
  66.     dateold = readln( date )
  67.     call close( date )
  68.   end
  69. else
  70.   say 'Could not open "T:Date" !!!'
  71.  
  72. timeold = right( dateold,8 )
  73.  
  74. address command 'C:Delete >NIL T:Date'
  75.  
  76. /* save ntp time */
  77.  
  78. address command 'C:Date' timentp
  79. address command 'C:SetClock SAVE'
  80.  
  81. /* compare both times and log */
  82.  
  83. secntp = left( timentp,2 ) * 3600 + substr( timentp,4,2 ) *60 + right( timentp,2 )
  84. secold = left( timeold,2 ) * 3600 + substr( timeold,4,2 ) *60 + right( timeold,2 )
  85. secerror = secntp - secold - secdelta
  86. if ( secerror > 0 ) then timeerror = '+'
  87. if ( secerror < 0 ) then timeerror = '-'
  88. if ( secerror = 0 ) then timeerror = ' '
  89. secerror = abs( secerror )
  90. hh = right( '0' || trunc( secerror / 3600 ),2 )
  91. mm = right( '0' || trunc( ( secerror - hh * 3600 ) / 60 ),2 )
  92. ss = right( '0' || secerror - hh * 3600 - mm * 60,2 )
  93. timeerror = timeerror || hh || ':' || mm || ':' || ss
  94.  
  95. error = word( datentp,2,1 ) || '     ' || timeold || '  ' || timentp || '  ' || timeerror
  96.  
  97. if ~open( log,logfile,r ) then
  98.   do
  99.     call open( log,logfile,w ) then
  100.     writeln( log,'Date          old time  ntp time  error' )
  101.     writeln( log,'---------     --------  --------  ---------' )
  102.   end
  103. call close( log )
  104.  
  105. if open( log,logfile,a ) then
  106.   do
  107.     writeln( log,error )
  108.     call close( log )
  109.   end
  110. else
  111.   say 'Could not open "' || logfile || '" !!!'
  112.  
  113. /* the end */
  114.  
  115. exit
  116.